
using System;

namespace SpotifyGenNHibernate.EN.Spotify
{
        public class UsuarioEN
        {
        /**
         *
         */

        private int id;

        /**
         *
         */

        private String nombre;

        /**
         *
         */

        private String password;

        /**
         *
         */

        private String email;

        /**
         *
         */

        private String pais;

        /**
         *
         */

        private int codigoPostal;

        /**
         *
         */

        private SpotifyGenNHibernate.Enumerated.Spotify.TSexoEnum sexo;

        /**
         *
         */

        private Nullable<DateTime> fechaNacimiento;

        /**
         *
         */

        private SpotifyGenNHibernate.Enumerated.Spotify.TMovilEnum movil;

        /**
         *
         */

        private bool boletin;

        /**
         *
         */

        private bool sms;

        /**
         *
         */

        private bool premium;

        /**
         *
         */

        private bool logueado;

        /**
         *
         */

        private System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionBibliotecaEN> cancionesBiblioteca;

        /**
         *
         */

        private Spotify.ColaDeReproduccionEN colaDeReproduccion;

        /**
         *
         */

        private Spotify.BandejaDeEntradaEN bandejaDeEntrada;





        public virtual int Id { get { return id; } set { id = value;  } }


        public virtual String Nombre { get { return nombre; } set { nombre = value;  } }


        public virtual String Password { get { return password; } set { password = value;  } }


        public virtual String Email { get { return email; } set { email = value;  } }


        public virtual String Pais { get { return pais; } set { pais = value;  } }


        public virtual int CodigoPostal { get { return codigoPostal; } set { codigoPostal = value;  } }


        public virtual SpotifyGenNHibernate.Enumerated.Spotify.TSexoEnum Sexo { get { return sexo; } set { sexo = value;  } }


        public virtual Nullable<DateTime> FechaNacimiento { get { return fechaNacimiento; } set { fechaNacimiento = value;  } }


        public virtual SpotifyGenNHibernate.Enumerated.Spotify.TMovilEnum Movil { get { return movil; } set { movil = value;  } }


        public virtual bool Boletin { get { return boletin; } set { boletin = value;  } }


        public virtual bool Sms { get { return sms; } set { sms = value;  } }


        public virtual bool Premium { get { return premium; } set { premium = value;  } }


        public virtual bool Logueado { get { return logueado; } set { logueado = value;  } }


        public virtual System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionBibliotecaEN> CancionesBiblioteca { get { return cancionesBiblioteca; } set { cancionesBiblioteca = value;  } }


        public virtual Spotify.ColaDeReproduccionEN ColaDeReproduccion { get { return colaDeReproduccion; } set { colaDeReproduccion = value;  } }


        public virtual Spotify.BandejaDeEntradaEN BandejaDeEntrada { get { return bandejaDeEntrada; } set { bandejaDeEntrada = value;  } }



        public UsuarioEN()
        {
        }



        public UsuarioEN(int id, String nombre, String password, String email, String pais, int codigoPostal, SpotifyGenNHibernate.Enumerated.Spotify.TSexoEnum sexo, Nullable<DateTime> fechaNacimiento, SpotifyGenNHibernate.Enumerated.Spotify.TMovilEnum movil, bool boletin, bool sms, bool premium, bool logueado, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionBibliotecaEN> cancionesBiblioteca, Spotify.ColaDeReproduccionEN colaDeReproduccion, Spotify.BandejaDeEntradaEN bandejaDeEntrada)
        {
                this.init (id, nombre, password, email, pais, codigoPostal, sexo, fechaNacimiento, movil, boletin, sms, premium, logueado, cancionesBiblioteca, colaDeReproduccion, bandejaDeEntrada);
        }


        public UsuarioEN(UsuarioEN usuario)
        {
                this.init (usuario.Id, usuario.Nombre, usuario.Password, usuario.Email, usuario.Pais, usuario.CodigoPostal, usuario.Sexo, usuario.FechaNacimiento, usuario.Movil, usuario.Boletin, usuario.Sms, usuario.Premium, usuario.Logueado, usuario.CancionesBiblioteca, usuario.ColaDeReproduccion, usuario.BandejaDeEntrada);
        }

        private void init (int id, String nombre, String password, String email, String pais, int codigoPostal, SpotifyGenNHibernate.Enumerated.Spotify.TSexoEnum sexo, Nullable<DateTime> fechaNacimiento, SpotifyGenNHibernate.Enumerated.Spotify.TMovilEnum movil, bool boletin, bool sms, bool premium, bool logueado, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionBibliotecaEN> cancionesBiblioteca, Spotify.ColaDeReproduccionEN colaDeReproduccion, Spotify.BandejaDeEntradaEN bandejaDeEntrada)
        {
                this.Id = id;


                this.Nombre = nombre;

                this.Password = password;

                this.Email = email;

                this.Pais = pais;

                this.CodigoPostal = codigoPostal;

                this.Sexo = sexo;

                this.FechaNacimiento = fechaNacimiento;

                this.Movil = movil;

                this.Boletin = boletin;

                this.Sms = sms;

                this.Premium = premium;

                this.Logueado = logueado;

                this.CancionesBiblioteca = cancionesBiblioteca;

                this.ColaDeReproduccion = colaDeReproduccion;

                this.BandejaDeEntrada = bandejaDeEntrada;
        }

        public override bool Equals (object obj)
        {
                if (obj == null)
                        return false;
                UsuarioEN t = obj as UsuarioEN;
                if (t == null)
                        return false;
                if (Id.Equals (t.Id))
                        return true;
                else
                        return false;
        }

        public override int GetHashCode ()
        {
                int hash = 13;

                hash += (null == Id ? 0 : this.Id.GetHashCode ());
                return hash;
        }
        }
}
